﻿using ORM.Business.Models.Caching;
using ORM.Common;
using ORM.Common.Caching;

namespace ORM.Business.Models.Caching
{
    /// <summary>
    /// Contains properties to access cached reference data
    /// </summary>
    public static class ReferenceDataCache
    {
        public static RoleCollection RoleCollection
        {
            get { return Cacher.GetData<RoleCollection>(Constants.ConfigKeys.Caching.RoleCollectionCacheMinutes); }
        }


        public static DeviceCollection DeviceCollection
        {
            get { return Cacher.GetData<DeviceCollection>(Constants.ConfigKeys.Caching.DeviceCollectionCacheMinutes); }
        }

        public static GuideTypeCollection GuideTypeCollection
        {
            get { return Cacher.GetData<GuideTypeCollection>(Constants.ConfigKeys.Caching.GuideTypeCollectionCacheMinutes); }
        }

        public static ManufacturerCollection ManufacturerCollection
        {
            get { return Cacher.GetData<ManufacturerCollection>(Constants.ConfigKeys.Caching.ManufacturerCollectionCacheMinutes); }
        }

        public static ModelCollection ModelCollection
        {
            get { return Cacher.GetData<ModelCollection>(Constants.ConfigKeys.Caching.ModelCollectionCacheMinutes); }
        }

        public static PermissionCollection PermissionCollection
        {
            get { return Cacher.GetData<PermissionCollection>(Constants.ConfigKeys.Caching.PermissionCollectionCacheMinutes); }
        }

        public static LocationCollection LocationCollection
        {
            get { return Cacher.GetData<LocationCollection>(Constants.ConfigKeys.Caching.LocationCollectionCacheMinutes); }
        }

        public static UserStateCollection UserStateCollection
        {
            get { return Cacher.GetData<UserStateCollection>(Constants.ConfigKeys.Caching.UserStateCollectionCacheMinutes); }
        }
    }
}